home *** CD-ROM | disk | FTP | other *** search
- # -*- Fundamental -*-
-
-
- function get_imap_banner (port)
- {
- local_var sb, banner, soc;
-
- sb = string("imap/banner/", port);
- banner = get_kb_item(sb);
- if(banner) return (banner);
- if ( get_kb_item("imap/" + port + "/broken") )
- return NULL;
-
- if(! get_port_state(port)) return (0);
- soc = open_sock_tcp(port);
- if (! soc) {
- set_kb_item(name:"imap/" + port + "/broken", value:TRUE);
- return NULL;
- }
- banner = recv_line(socket: soc, length:4096);
- close(soc);
- if(! banner ) {
- set_kb_item(name:"imap/" + port + "/broken", value:TRUE);
- return NULL;
- }
-
-
- if ( defined_func("replace_kb_item") )
- replace_kb_item(name: sb, value: banner);
- else
- set_kb_item(name: sb, value: banner);
- return(banner);
- }
-
-